package com.powergisol.gis.service.impl;

import com.powergisol.gis.dao.TabVisualMapper;
import com.powergisol.gis.entity.TabVisual;
import com.powergisol.gis.service.TabVisualService;
import com.powergisol.gis.util.Result;
import com.powergisol.gis.vo.SearchVisualVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

/**
 * Created By marc
 * Date: 2020/9/22  11:18
 * Description:
 */
@Service
public class TabVisualServiceImpl implements TabVisualService {

    @Autowired
    private TabVisualMapper tabVisualMapper;


    @Override
    public List<TabVisual> getVisualList(SearchVisualVo vo) {
        return tabVisualMapper.getVisualList(vo);
    }

    @Override
    public Result getAcquiesce(Integer scenceId) {
        Result r = new Result();
        TabVisual tabVisual = tabVisualMapper.getAcquiesce(scenceId);
//        if(null == tabVisual){
//            tabVisual = tabVisualMapper.getVisualTop(scenceId);
//        }
        r.setData(tabVisual);
        return r;
    }

    @Override
    public Result setAcquiesce(Integer id,Integer scenceId) {
        TabVisual tabVisual = tabVisualMapper.visualDetail(id);
        //如果已是默认状态则取消默认，否则设置为默认同时取消已默认的视角
        if(1 == tabVisual.getIsAcquiesce()){
            tabVisualMapper.setAcquiesce(id,0);
        }else{
            tabVisualMapper.upAcquiesce(scenceId);
            tabVisualMapper.setAcquiesce(id,1);
        }

        return new Result();
    }

    @Override
    public Result delVisual(Integer id) {
        tabVisualMapper.delVisual(id);
        return new Result();
    }

    @Override
    public Result visualDetail(Integer id) {
        Result r = new Result();
        TabVisual tabVisual = tabVisualMapper.visualDetail(id);
        r.setData(tabVisual);
        return r;
    }

    @Override
    public Result renameVisual(String viewName,Integer id) {
        tabVisualMapper.renameVisual(viewName,id);
        return new Result();
    }

    @Override
    public Result addVisual(TabVisual visual) {
        visual.setCreateTime(new Date());
        tabVisualMapper.saveTabVisual(visual);
        return new Result();
    }
}
